const db = require("../../../db/index");
const { NULL_ERROR, PARAMS_ERROR, SYSTEM_ERROR} = require("../../../utils/errorCode");
const { priceReg } = require("../../../utils/regular");
// 添加商品
exports.main = (req, res) => {
    console.log(req.body);
    // 获取数据
    const {
        productName,
        productPrice,
        productInventory,
        productDescription,
        categoryId,
        cover,
        bannerList = '[]',
        isActive = '0'
    } = req.body;

    // 判断数据是否为空
    if (!productName || !productPrice || !productInventory || !categoryId || !cover) {
        // 如果有任何一个数据为空，则执行以下逻辑
        return res.err(NULL_ERROR)
    }
    // 判断数据格式是否正确
    if (isNaN(categoryId) || categoryId < 0) {
        return res.err(PARAMS_ERROR, "分类id错误")
    }

    if (productName.length > 100) {
        return res.err(PARAMS_ERROR, "名称不能大于100")
    }

    if (!priceReg(productPrice)) {
        return res.err(PARAMS_ERROR, "价格格式错误")
    }

    if ((isNaN(productInventory) || productInventory < 0)) {
        return res.err(PARAMS_ERROR, "库存数量错误")
    }
    if(isActive && !['0','1'].includes(isActive)) {
        return res.err(PARAMS_ERROR, "是否上架参数错误，应为 0 或 1")
    }
    const data = {
        productName,
        productPrice,
        productInventory,
        categoryId,
        productDescription,
        isActive,
        cover,
        bannerList
    }

    // 添加商品的 sql 语句
    const sql = `insert into products set  ?`
    db.query(sql, data,(err, result) => {
        if (err) {
            console.log(err);
            if(err.errno === 1452){
                return res.sm2("分类id不存在");
            }
            return res.err(SYSTEM_ERROR);
        }
        console.log(result);
        return res.sid(result.insertId)
    })

}